Fluid Simulation Components

Fluid Simulation Terrain and Obstacle Input Boundary Conditions Side Border Settings Domain Solver Initial Conditions Terrain & Ground Simulation Culling Extension Layers Create Collider Fluid Simulation Settings Creation Properties Second Layer Flux Fluid Simulation The Pipe (Flux) Model Simulation Characteristics Flux Fluid Simulation Settings Creation Specialized Flux Properties Flow Fluid Simulation The 2D Height Field Model Performance and Stability Solver Ocean FFT Coupling Flow Fluid Simulation Settings Creation Specialized Flow Properties Fluid Simulation Static Fluid Surface Bake Foam Layer Foam Layer Settings Foam Render Settings Foam Decay Settings Foam Pressure Settings Foam Wave Settings Shallow Foam Settings Turbulence Foam Settings Wetness Layer Wetness Layer Settings Rendering Settings Decay Settings Fluid Flow Mapping Fluid Flow Mapping Settings Erosion Layer Multi-Layer Terrain System Terrain Modification Processes Erosion Settings Terraform Layer Liquefaction (Solid Terrain to Fluid) Fluid Contact Reactions (Fluid and Terrain) Fluid Mixing (Fluid + Fluid to Solid Terrain) Fluid Contact Reaction Terraform Settings Terrain Modifier Terrain Modifier Settings Sediment Modifier Sediment Modifier Settings Terraform Modifier Fluid Particle Generator Splash Particles Surface Particles Fluid Particle System Fluid RigidBody Prerequisite Fluid Density Calibration Interaction Calculation Fluid Displacement Profile Fluid Interaction Profile Fluid RigidBody Lite Fluid Floater Fluid Simulation Obstacle Settings Fluid Event Trigger Fluid Ripple Zone (Beta) Fluid Ripple Impulse (Beta)

AI Skills

About Fluid Frenzy

Fluid Frenzy is an interactive GPU-accelerated fluid simulation and renderer designed specifically for use with Unity Terrain and Custom terrains. This project aims to provide developers with a powerful toolset to create realistic, fun, interactive and immersive fluid dynamics in their Unity projects.

Key Features

  • Real-time fluid simulation: Utilizing GPU acceleration for fast and interactive fluids.
  • Seamless integration with Unity Terrain: Easily add fluid elements to your Unity Terrain for a more immersive environment.
  • Custom terrain support: Compatible with custom terrains to give developers more flexibility in their projects.
  • Advanced rendering capabilities: Create stunning visual effects with the built-in renderer and Universal Render Pipeline.
  • Multiple fluid layers: Create complex interactions between different types of fluids, such as water and lava, that can mix and solidify into terrain surfaces like rock.
  • Terrain erosion: Simulate erosion effects on terrain surfaces as fluids flow over them, creating realistic effects over time. Optional Conservative Flux transport keeps sediment mass balanced on closed Flux grids.
  • Sediment-tinted water: Carried erosion sediment can stain the water from each terrain layer’s Sediment Color.
  • Eight-layer terraform terrain: Stack up to eight physical height layers, with layers 5–8 stored on a second heightmap.
  • Dynamic object interaction: Objects in the fluid can interact realistically, with buoyancy effects and advection as they move through the fluid simulation.
  • Fluid modifiers: Customize the behavior of the fluid simulation with modifiers like waves, pressure fields, and whirlpools to create dynamic and visually interesting effects in your project.
  • Dynamic wetness maps: Shorelines stay dark and reflective after the fluid recedes, then dry out over time on terrain and custom materials.
  • Wet lens: Leftover water on the camera after leaving the fluid, with a draining film and leftover drops.
  • Current particles: Current-aligned wisps and foam bubbles in the water volume, visible from above and below the surface.
  • Fluid Floater: Pin debris and foliage to the water surface without buoyancy physics.
  • Current-displaced vegetation: Grass and meshes lean and sway with the simulation current.
  • Edit Mode Preview: Run the simulation in the Scene view without entering Play Mode.
  • Baked surface playback: Capture a settled frame and play it back without a live solver. Height stays frozen. Flow mapping still scrolls surface textures. Use this for low-end, VR, or any scene that wants the Fluid Frenzy look without the solver cost.
  • AI Skills: Included skills so coding assistants can set up and script Fluid Frenzy from the public API.
  • Multiplayer hooks (Beta): Capture solver state for a late joiner and follow a shared clock. You still pick the network library. See Multiplayer Support (Beta).
  • Universal Render Pipeline: Supports Universal Render Pipeline with minimal extra setup as all features, components, and shaders are useable in both Built-in and URP.

Contents

  1. Fluid Simulation Scripts & Resources Runtime\Simulation
  2. Fluid Rendering Scripts & Resources Runtime\Rendering
  3. Sample Scenes
    1. River Samples~\River\River.unity
    2. RiverFlow Samples~\River\RiverFlow.unity
    3. MultiFluid RiverFlow Samples~\River\MultiFluid_RiverFlow.unity
    4. Grand Canyon (HDRP) Samples~\HDRP_GrandCanyon\HDRP_GrandCanyon.unity
    5. Water Modifiers Samples~\WaterModifiers\WaterModifiers.unity
    6. Volcano Samples~\Volcano\Volcano.unity
    7. Terraform Samples~\Terraform\Terraform.unity
    8. TerraformFlow Samples~\Terraform\TerraformFlow.unity
    9. TerraformFlow Beams Samples~\Terraform\TerraformFlowBeams.unity
    10. FossilFinder Samples~\FossilFinder\FossilFinder.unity
    11. Pool Samples~\Pool\Pool.unity
    12. Simple Terraform Samples~\SimpleTerraform\SimpleTerraform.unity
    13. Tiled Simulation Samples~\TiledSimulation\TiledSimulation.unity
    14. World Samples~\World\World.unity
    15. Runtime Setup Samples~\RuntimeSetup\RuntimeSetup.unity
    16. State Sync Samples~\StateSync\StateSync.unity
    17. GPULODTerrain Samples~\GPULODTerrain\GPULODTerrain.unity
  4. AI Skills FluidFrenzy\AI\Skills
  5. Documentation DOCUMENTATION.pdf DOCUMENTATION.html Documentation~\DOCUMENTATION.md

Requirements

Hardware/Software Version
Unity 2021.3 or newer
OS Windows 10 or newer
GPU Nvidia GTX 1050 equivalent or higher
Graphics API DirectX 11. DirectX 12. Vulkan. WebGL 2(Beta).
Shader Model Recommended: 5.0. Minimum: 3.0
Renderpipeline Built-in. Universal Render Pipeline

Limitations

  • Fluid Frenzy is a 2.5D/Shallow Water Equation fluid simulation that is achieved by storing the height of the fluid in a 2D texture (X, Z). This method restricts the simulation to having only one height per pixel, thereby preventing the fluid from flowing both under and over objects simultaneously.
  • The fluid simulation has a maximum speed limit determined by the 2.5D implementation used. In this simulation, the fluid is represented in a 2D texture where each pixel corresponds to a specific size in the world. The fluid can only move one pixel per step, resulting in a maximum speed limit based on the pixel’s world units per frame. The simulation attempts to adjust automatically when the dimensions are scaled, but there is a limit to how fast or slow the fluid can move.
  • Fluid Frenzy can capture and resume solver state and follow a shared clock. It cannot make two GPUs produce the same ripples. It does not stream height every frame. It does not replicate boats or modifiers. Foam, flow mapping, and particles stay local after join. See Multiplayer Support (Beta).
  • Fluid Frenzy’s WebGL 2 support is currently in beta. There is the possibility of bugs when running in WebGL 2. Please report them if you encounter them.
  • WebGL 2 does not support compute shaders. Any feature that depends on compute is unavailable on WebGL and other platforms without compute support. See Feature Support for the full list and recommended alternatives. WebGPU may restore compute support in the future, but Unity support is still experimental and unstable with Fluid Frenzy.
  • Older Unity versions below Unity 2021.3 are not officially supported. Unity 2020.3 is functional as of 01-04-2025 but may not have feature parity and constant support. Support may be added on request depending on the amount of work.

Pipeline Support

Fluid Frenzy supports all pipelines. Please refer to the table below for each version and the corresponding supported pipeline features. There are some differences between pipelines; for example, HDRP recommends using ShaderGraph to create shaders instead of writing custom shaders.

As a result, all shaders have HDRP-specific versions created in ShaderGraph, which should be used in place of custom shaders. The exception is the FluidFrenzy/Water shader, which remains a custom shader. To minimize compatibility issues across different Unity versions, support is limited to Unity 6000.0 and above for HDRP.

Unity Version Built-in Render Pipeline Universal Render Pipeline High Definition Render Pipeline
2021.3 ✅ Supported ✅ Supported ❌ Not Supported
2022.3 ✅ Supported ✅ Supported ❌ Not Supported
6000.0 ✅ Supported ✅ Supported 🟠 Beta
6000.1 ✅ Supported ✅ Supported 🟠 Beta

Platform Support

Platform State Comments
Windows Supported Fully supported.
macOS Unknown Untested, no device to develop or test
Linux Supported Supported through Vulkan
Android Supported Supported, performance varies per device
iOS Unknown Untested, no device to develop or test
WebGL Partial Core simulation and standard surface rendering work. Compute-dependent features are not supported. See Feature Support.
WebGPU Experimental Experimental due to Unity bugs
VR Supported Tested on Quest 1, performance varies per device

Feature Support

Fluid Frenzy’s core shallow-water simulation and standard mesh surface rendering use GPU fragment shaders and run on WebGL 2 and other platforms without compute shaders.

Several optional features rely on compute shaders. Those features are not available when SystemInfo.supportsComputeShaders is false, most notably WebGL 2, which has no compute shader support in Unity.

Feature Requires compute Without compute Alternative
Fluid World Renderer Yes Not supported Use a Fluid Renderer per simulation tile with MeshRenderer or DrawMesh render mode.
GPULOD surface render mode (Fluid Renderer) Yes Not supported (falls back to MeshRenderer) Use MeshRenderer or DrawMesh explicitly.
Fluid Particle Generator (splash, spray, foam) Yes Not supported Disable the layer or omit particle effects.
GPU particles on Terraform Layer (e.g. steam when fluids mix) Yes Not supported Fluid mixing and terrain conversion still work; only the steam VFX is omitted.
FFT ocean / JONSWAP detail waves Yes Not supported Use Gerstner dynamic waves or a baked flipbook in Detail Wave Settings.
Fluid Rigidbody (two-way coupling) Yes Not supported Use Fluid Rigidbody Lite for simplified buoyancy and impact splashes.
GPU buoyancy sampling with Fluid World Renderer Yes Not supported Use per-tile Fluid Renderer and enable CPU Height Read (readBackHeight) on each Fluid Simulation.
Current Particles Yes Not supported Disable Current Particles on Water Surface / Water World Renderer.
GPULOD Terrain sample Yes Not supported Use Unity Terrain, Simple Terrain, or another non-GPULOD terrain.

Generally supported without compute: Flux and Flow fluid simulation, Fluid Simulation Static playback, Foam Layer, Wetness Layer, Flow Mapping, Erosion Layer, terraform mixing (without steam particles), Fluid Modifiers, Fluid Simulation Obstacle, standard water/lava rendering, Wet Lens Effect, Fluid Rigidbody Lite, Fluid Floater, and Current Displacement Shaders.

Related platform limits (not compute): Fluid Simulation Obstacle Conservative Rasterization requires hardware support and is unavailable on WebGL, OpenGL ES, and some older mobile GPUs (the system falls back to standard rasterization automatically). Terraform Terrain Eight Layer Mode uses four-layer shading on WebGL.